package utils

type LocalPatientType struct {
	Id              uint    `json:"id"              ` // 自增ID
	Playercode      string  `json:"playercode"      ` // 挂号编号
	Groupid         int     `json:"groupid"         ` // 队列ID
	Patientid       string  `json:"patientid"       ` // 患者ID
	Patientname     string  `json:"patientname"     ` // 患者姓名
	Clinicnumber    string  `json:"clinicnumber"    ` // 门诊号
	Gender          string  `json:"gender"          ` // 性别
	Age             string  `json:"age"             ` // 年龄：38岁
	Birthday        string  `json:"birthday"        ` // 生日
	Cardno          string  `json:"cardno"          ` // 身份证吗
	Seq             string  `json:"seq"             ` // his给的序号
	Serialnumber    string  `json:"serialnumber"    ` // 自己的序号,签到成功后获取分配
	Sort            float64 `json:"sort"            ` // 排序:获取 serialnumber 对应的id，+ 权重
	Wiget           string  `json:"wiget"           ` // 权重
	Deptid          string  `json:"deptid"          ` // 挂号科室ID
	Deptname        string  `json:"deptname"        ` // 挂号科室名称
	Roomid          string  `json:"roomid"          ` // 分诊的诊室ID
	Roomname        string  `json:"roomname"        ` // 分诊的诊室名称
	Doctorid        string  `json:"doctorid"        ` // 分诊的医生ID
	Doctorname      string  `json:"doctorname"      ` // 分诊的医生姓名
	Callcount       int     `json:"callcount"       ` // 呼叫次数
	State           int     `json:"state"           ` // 当前状态:statelist最后一条信息状态
	Statelist       string  `json:"statelist"       ` // 当前用户状态列表[{}]
	Registerway     string  `json:"registerway"     ` // 挂号途径
	Ismake          string  `json:"ismake"          ` // 是否预约(是，否)
	Isreclinicname  string  `json:"isreclinicname"  ` // 是否急诊
	Issreclinic     string  `json:"issreclinic"     ` // 是否复诊
	Registertypeid  string  `json:"registertypeid"  ` // 挂号类型编号
	Registertype    string  `json:"registertype"    ` // 挂号类型(普通/专家/特需)
	Playeridentity  string  `json:"playeridentity"  ` // 患者身份【优先标识】(普通/军人/老年人/离休老干/孕妇/...)
	Preengagemode   string  `json:"preengagemode"   ` // 预约方式
	Startseattime   string  `json:"startseattime"   ` // 坐诊开始时间
	Endseattime     string  `json:"endseattime"     ` // 坐诊结束时间
	Aheadatworktime string  `json:"aheadatworktime" ` // 提前上班时间
	Looktime        string  `json:"looktime"        ` // 就诊时间
	Createtime      string  `json:"createtime"      ` // 创建时间
	Updatetime      string  `json:"updatetime"      ` // 数据最后更新时间
}

func (l LocalPatientType) GetTableName() string {
	return "player_queues"
}
func (l LocalPatientType) GetPKColumnName() string {
	return "id"
}
func (l LocalPatientType) GetPkSequence() string {
	return ""
}

// PatientType 患者信息
type PatientType struct {
	PatientId    int         `json:"patientId"`
	OutpatientNo int         `json:"outpatientNo"`
	PatientName  string      `json:"patientName"`
	RegNo        string      `json:"regNo"`
	IdCard       interface{} `json:"idCard"`
	RegisterId   string      `json:"registerId"`
	Seq          string      `json:"seq"`
	State        int         `json:"state"`
	CallCount    interface{} `json:"callCount"`
	CallTime     string      `json:"callTime"`
	Remark       string      `json:"remark"`
	Gender       string      `json:"gender"`
	RoomId       int         `json:"roomId"`
	RoomName     string      `json:"roomName"`
	DoctorId     int         `json:"doctorId"`
	DoctorName   string      `json:"doctorName"`
}

// StatusChangedReq 状态变化
type StatusChangedReq struct {
	DoctorId   string `json:"doctorId"`           //医生ID
	DoctorName string `json:"doctorName"`         //医生姓名
	RoomId     string `json:"roomId"`             //诊室ID
	RoomName   string `json:"roomName"`           //诊室名称
	DeptId     string `json:"deptId"`             //科室ID
	DeptName   string `json:"deptName"`           //科室名称
	DeviceId   string `json:"deviceId"`           //呼叫设备  IP
	Playercode string `json:"playercode"`         // 挂号编号
	Patientid  string `json:"patientid,optional"` // 患者ID
	Statustype int    `json:"statustype"`         //状态
}

// DoctorCallPatientType 医生呼叫
type DoctorCallPatientType struct {
	DoctorId         string         `json:"doctorId"`
	DoctorCode       string         `json:"doctorCode"`
	DoctorName       string         `json:"doctorName"`
	DoctorPositional string         `json:"doctorPositional"`
	DoctorIntro      string         `json:"doctorIntro"`
	DeptId           string         `json:"deptId"`
	DeptCode         string         `json:"deptCode"`
	DeptName         string         `json:"deptName"`
	RoomId           string         `json:"roomId"`
	RoomCode         string         `json:"roomCode"`
	RoomName         string         `json:"roomName"`
	Rid              string         `json:"rid"`
	PatientList      []*PatientType `json:"patientList"`
}

// DeptPatientType 科室队列信息
type DeptPatientType struct {
	DeptId      string         `json:"deptId"`
	DeptCode    string         `json:"deptCode"`
	DeptName    string         `json:"deptName"`
	PatientList []*PatientType `json:"patientList"`
}

// DoctorInvokePatientType 医生接诊
type DoctorInvokePatientType struct {
	DoctorId         string `json:"doctorId"`
	DoctorCode       string `json:"doctorCode"`
	DoctorName       string `json:"doctorName"`
	DeptId           string `json:"deptId"`
	DeptCode         string `json:"deptCode"`
	DeptName         string `json:"deptName"`
	RoomId           string `json:"roomId"`
	RoomCode         string `json:"roomCode"`
	RoomName         string `json:"roomName"`
	RegNo            string `json:"regNo"`
	PatientId        string `json:"patientId"`
	OutpatientNo     string `json:"outpatientNo"`
	PatientName      string `json:"patientName"`
	IdCard           string `json:"idCard"`
	RegisterId       string `json:"registerId"`
	Seq              string `json:"seq"`
	DoctorPositional string `json:"doctorPositional"`
	DoctorIntro      string `json:"doctorIntro"`
	IP               string `json:"ip"`
}

// StatusType 状态
type StatusType struct {
	Status     int    `json:"status"`
	Statusname string `json:"statusname"`
	Deptid     string `json:"deptid"`
	Deptname   string `json:"deptname"`
	Roomid     string `json:"roomid"`
	Roomname   string `json:"roomname"`
	Doctorid   string `json:"doctorid"`
	Doctorname string `json:"doctorname"`
	Createtime string `json:"createtime"`
}

// HisPatientType 队列数据
type HisPatientType struct {
	CALLCOUNT    string      `json:"CALLCOUNT"`
	DOCTORID     interface{} `json:"DOCTORID"`
	DOCTORNAME   interface{} `json:"DOCTORNAME"`
	GENDER       string      `json:"GENDER"`
	IDCARD       *string     `json:"IDCARD"`
	OUTPATIENTNO string      `json:"OUTPATIENTNO"`
	PATIENTID    string      `json:"PATIENTID"`
	PATIENTNAME  string      `json:"PATIENTNAME"`
	REGISTERID   string      `json:"REGISTERID"`
	REGNO        string      `json:"REGNO"`
	REMARK       string      `json:"REMARK"`
	ROOMID       string      `json:"ROOMID"`
	ROOMNAME     string      `json:"ROOMNAME"`
	SEQ          string      `json:"SEQ"`
	STATE        string      `json:"STATE"`
	DEPTID       string      `json:"DEPTID"`
	DEPTNAME     string      `json:"DEPTNAME"`
	UPDATETIME   string      `json:"UPDATETIME"`
}

type DoctorLookType struct {
	Registeredcode string `json:"registeredcode"`
	Patientid      string `json:"patientid"`
	Patientname    string `json:"patientname"`
	Cardno         string `json:"cardno"`
	Gender         string `json:"gender"`
	Age            string `json:"age"`
	Seq            string `json:"seq"`
	Startseattime  string `json:"startseattime"`
	Endseattime    string `json:"endseattime"`
	Looktime       string `json:"looktime"`
	Registerway    string `json:"registerway"`
	Deptid         string `json:"deptid"`
	Deptname       string `json:"deptname"`
	Roomid         string `json:"roomid"`
	Roomname       string `json:"roomname"`
	Doctorid       string `json:"doctorid"`
	Doctorname     string `json:"doctorname"`
	Createtime     string `json:"createtime"`
	Recoredtime    string `json:"recoredtime"`
}

// HisRegistered his 挂号信息
type HisRegistered struct {
	Regno            string `json:"regno"`                     //挂号单号
	Clinicnumber     int64  `json:"clinicnumber,optional"`     //门诊号
	Patientid        int64  `json:"patientid,optional"`        //患者ID
	Idcard           string `json:"idcard,optional"`           //身份证号
	Clinicdeptid     int64  `json:"clinicdeptid,optional"`     //就诊科室ID
	Clinicname       string `json:"clinicname,optional"`       //就诊科室名称
	Clinicdoctorid   int64  `json:"clinicdoctorid,optional"`   //就诊医生ID
	Clinicdoctorname string `json:"clinicdoctorname,optional"` //就诊医生姓名
	Atworktime       string `json:"atworktime,optional"`       //上班时间
	Offworktime      string `json:"offworktime,optional"`      //下班时间
	Aheadatworktime  string `json:"aheadatworktime,optional"`  //提前上班时间
	Patientname      string `json:"patientname,optional"`      //患者姓名
	Gender           string `json:"gender,optional"`           //患者性别
	Age              string `json:"age,optional"`              //患者年龄
	Birthday         string `json:"birthday,optional"`         //患者生日
	Clinictime       string `json:"clinictime,optional"`       //就诊时间
	Paytime          string `json:"paytime,optional"`          //记录时间
	Hisorder         int64  `json:"hisorder,optional"`         //His号序
	Regpathway       string `json:"regpathway,optional"`       //挂号途径
	Isreclinic       string `json:"isreclinic,optional"`       //是否复诊
	Isreclinicname   string `json:"isreclinicname,optional"`   //是否急诊
	Isreclinicphone  string `json:"isreclinicphone,optional"`  //是否预约号
	Regtypecode      string `json:"regtypecode,optional"`      //挂号类型编码
	Regtypename      string `json:"regtypename,optional"`      //挂号类型名称
	Patienttype      string `json:"patienttype,optional"`      //患者身份
	Paypersion       string `json:"paypersion,optional"`       //收费员
	Preengagemode    string `json:"preengagemode,optional"`    //预约方式
}

type HisPagesType struct {
	Currentpage int `json:"currentpage"`
	Maxpage     int `json:"maxpage"`
	Toalnumber  int `json:"toalnumber"`
}

type HisRegisterType struct {
	Code  int             `json:"code"`
	Msg   string          `json:"msg"`
	Pages HisPagesType    `json:"pages"`
	Data  []HisRegistered `json:"data"`
}

// RegisteredReq 挂号api 数据格式
type RegisteredReq struct {
	Id              int64   `json:"id,optional"`              //自增ID
	Registeredcode  string  `json:"registeredcode,optional"`  //挂号编号
	Patientid       string  `json:"patientid,optional"`       //患者ID
	Patientname     string  `json:"patientname,optional"`     //患者姓名
	Deptid          string  `json:"deptid,optional"`          //挂号科室ID
	Deptname        string  `json:"deptname,optional"`        //挂号科室名称
	Seq             *string `json:"seq,optional"`             //his给的序号
	Doctorid        *string `json:"doctorid,optional"`        //分诊的医生ID
	Doctorname      *string `json:"doctorname,optional"`      //分诊的医生姓名
	CardNo          *string `json:"cardNo,optional"`          //身份证号
	Gender          *string `json:"gender,optional"`          //性别
	Age             *string `json:"age,optional"`             //年龄
	Birthday        *string `json:"birthday,optional"`        //生日
	Looktime        *string `json:"looktime,optional"`        //就诊时间
	Startseattime   *string `json:"startseattime,optional"`   //上班时间
	Endseattime     *string `json:"endseattime,optional"`     //下班时间
	Aheadatworktime *string `json:"aheadatworktime,optional"` //提前上班时间
	Ismake          *string `json:"ismake,optional"`          //是否预约
	Isreclinicname  *string `json:"isreclinicname,optional"`  //是否急诊
	Issreclinic     *string `json:"issreclinic,optional"`     //是否复诊
	Registertypeid  *string `json:"registertypeid,optional"`  //挂号类型编号
	Registertype    *string `json:"registertype,optional"`    //挂号类型名称
	Preengagemode   *string `json:"preengagemode,optional"`   //预约方式
	Paypersion      *string `json:"paypersion,optional"`      //收费员
	Registerway     *string `json:"registerway,optional"`     //挂号途径
	Createtime      *string `json:"createtime,optional"`      //挂号时间
	Recoredtime     string  `json:"recoredtime,optional"`     //接收消息记录时间
}

// SignResult 签到结果返回
type SignResult struct {
	Code    int             `json:"code"`
	Message string          `json:"message"`
	Data    *SignResultInfo `json:"data"`
}

// SignResultInfo 签到返回信息
type SignResultInfo struct {
	Serialnumber string `json:"serialnumber"`
	DeptId       string `json:"deptId"`
	DeptName     string `json:"deptName"`
	RoomId       string `json:"roomId"`
	RoomName     string `json:"roomName"`
	DoctorId     string `json:"doctorId"`
	DoctorName   string `json:"doctorName"`
	GroupId      int    `json:"groupId"`
	GroupName    string `json:"groupName"`
	RegNo        string `json:"regNo"`
}

type HisSignResponse struct {
	Code  int           `json:"code"`
	Msg   string        `json:"msg"`
	Pages HisPagesType  `json:"pages"`
	Data  []interface{} `json:"data"`
}

type PlayerSignReq struct {
	Code int64           `json:"code"`
	Msg  string          `json:"msg"`
	Data []HisRegistered `json:"data" dc:"数据"`
}
